package com.yfp.tissue.mapper;

import com.yfp.common.datascope.annotation.DataScope;
import com.yfp.tissue.domain.Dto.AreaDto;
import com.yfp.tissue.domain.Dto.RouteDTO;
import com.yfp.tissue.domain.entity.Position;
import com.yfp.tissue.domain.entity.Route;
import com.yfp.tissue.domain.vo.CompanyListVO;
import com.yfp.tissue.domain.vo.PositionVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface PositionMapper {
    List<AreaDto> queryPotion(String areaId);

    List<PositionVO> queryPosition(RouteDTO routeDTO);

    List<PositionVO> findList(RouteDTO routeDTO);

    @DataScope(deptAlias = "p")
    List<Position> queryAllByLimit(Position position);

    long count(Position position);

    void insert(Position position);

    void update(Position position);

    void updateEnable(Position position);

    PositionVO queryPositionDetail(String positionId);

    List<Position> queryById(@Param("routeId") String routeId, @Param("enable") String enable);

    List<CompanyListVO> queryCompanyList(@Param("list") List<String> collect);

    List<Position> getPositionIds(Position position);

    /**
     * 根据机器id获取点位信息
     *
     * @param machineId
     * @return
     */
    List<Position> getInfoByMachineId(String machineId);

    List<Position> findByAreaId(String areaId);

    /**
     * 获取抽奖点位
     *
     * @return
     */
    List<Position> findPositionDraw(@Param("areaId") String areaId, @Param("positionId") String positionId);

    void updateByAreaId(Route route);
}
